/*
 * CLASSE que gerencia as conexões com o BD
 */
package br.com.jkar.dao;

import java.sql.Connection; // Sempre usar o pacote ".sql"
import java.sql.DriverManager;
import java.sql.ResultSet;
import java.sql.Statement;

/**
 *
 * @author Kamila Berto <kah.berto@gmail.com>
 */
public class FabricarConexao {

    public static Connection abrirConexao() throws Exception {
        Class.forName("com.mysql.jdbc.Driver");//Carrega os drivers do mySQL
        return DriverManager.getConnection("jdbc:mysql://localhost:3306/lavacarav",
                "root", "root");//Abre de fato a conexão, informando, endereço, usuário e senha do BD
    }

    public static void fechar(Connection conn, Statement st, ResultSet rs)
            throws Exception {
        if (rs != null) {
            rs.close();
        }
        if (st != null) {
            st.close();
        }
        if (conn != null) {
            conn.close();
        }
    }

    public static void fecharConexao(Connection conn, Statement st, ResultSet rs)
            throws Exception {
        fechar(conn, st, rs);
    }

    public static void fecharConexao(Connection conn, Statement st)
            throws Exception {
        fechar(conn, st, null);
    }

    public static void fecharConexao(Connection conn)
            throws Exception {
        fechar(conn, null, null);
    }

}

/*
 Connection - faz a ponte entre a aplicação java e o BD
 Statement - classe pai de PreparedStatement, por isso fecha-se os objetos dela e, por consequência, os objetos das classes filhas são fechadas 
 PreparedStatement - contém as instruções para manipular o BD (é responsável por pegar do java a sintaxe para usar no BD)
 ResultSet - retorna os dados que vêm do BD (é o resultado do SELECT, mas em java)
 */
